﻿
namespace Plugins.Engine
{
    //[Serializable, StructLayout(LayoutKind.Sequential)]
    //public struct PluginHostId : IPluginDeserializable<PluginHostId>
    //{
    //    public static readonly IPluginRuntimeFormatter Formatter = new XmlFormatter();
    //    public static readonly IPluginStringSerializer<PluginHostId> XmlSerializer = new PluginUnicodeStringSerializer<PluginHostId>();

    //    private Guid _key;
    //    private Guid _value;

    //    public Guid Host { get { return _key; } }
    //    public Guid Id { get { return _value; } }

    //    public PluginHostId(Guid key, Guid value)
    //    {
    //        this._key = key;
    //        this._value = value;
    //    }

    //    public string Serialize()
    //    {
    //        return XmlSerializer.Serialize(this, Formatter);
    //    }

    //    public void Deserialize(string s)
    //    {
    //        Initialize(XmlSerializer.Deserialize(s, Formatter));
    //    }

    //    public void Initialize(PluginHostId obj)
    //    {
    //        this._key = obj._key;
    //        this._value = obj._value;             
    //    }

    //    private class XmlFormatter : PluginTypeSerializer<PluginHostId>
    //    {
    //        public override void AddOverrides(IPluginTypeFormatter formatter)
    //        {
    //            base.AddType(formatter, "element");
    //            base.AddElement(formatter, "Host", "host", typeof(Guid));
    //            base.AddElement(formatter, "Id", "id", typeof(Guid));
    //        }
    //    }
    //}
}
